package com.mapreduce.demo.wordcount;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;
/**
 *  hello,1
 *  you,1
 *  hello,1
 *  he,1
 *  hello,1
 *  me,1
 *
 * 观察我们的数据，这些数据是来源于map函数输出的
 * k2是谁，是每一个单词本身
 * v2是谁，是1
 *
 * v2s是谁，是相同的单词对应v2的聚合，比如hello出现3次，会自动变成  hello,[1,1,1]
 *
 * hello,[1,1,1]
 * you,[1]
 * he,[1]
 * me,[1]
 * ------->
 * hello,3
 * you,1
 * he,1
 * me,1
 *
 */
public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    @Override
    protected void reduce(Text k2, Iterable<IntWritable> v2s, Context context) throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : v2s) {
            sum += val.get();
        }
        Text k3 = k2;
        IntWritable v3 = new IntWritable(sum);
        context.write(k3, v3);// 得到最后的结果。写到哪里去？
    }
}
